package zb.WX.service.menu;


import org.junit.jupiter.api.Test;
import zb.WX.util.AccessTokenSaveUtil;
import zb.WX.util.GlobalVar;
import zb.WX.util.HttpsUtil;

/**
 * 查询所有菜单，会把个性化菜单和自定义菜单放在同一个json中返回，如果没有设置个性化菜单则没有conditionalmenu。
 * 1.当设置了个性化菜单之后json中会返回conditionalmenu，即个性化菜单；
 * 2.当设置个性化菜单之后，自定义菜单和个性化菜单中都会有一个对应的menuid；
 * 3.conditionalmenu中包含了个性化菜单按钮结构和button，matchrule，menuid（匹配规则）。
 * 4.menu中包含了自定义菜单结构button，menuid
 * 5.menu和conditionalmenu是平行的
 * 6.个性化菜单可以设置多个，不会被覆盖。自定义擦菜单只能设置一个，会被后设置的覆盖。
 *
 * @author Administrator
 */
public class QueryMenu {
    /*
     * 返回所有按钮的json字符串
     */
    @Test
    public void queryMenu() {
        String access_token = AccessTokenSaveUtil.getLocationAccesstonken();
        String url = GlobalVar.QUERYMENU.replace("ACCESS_TOKEN", access_token);
        HttpsUtil.getHttpsToJson(url, null);
    }

    /*
     * 获取个性化菜单的具体信息并单独输出
     */
    @Test
    public void detailSpecialMenu() {
		/*String result = new QueryMenu().queryMenu();
		Gson gson = new Gson();
		JsonObject jsonObject = gson.fromJson(result, JsonObject.class);

		JsonArray jsonArray = jsonObject.get("conditionalmenu").getAsJsonArray();//获取到个性化菜单
		for (int i=0;i<jsonArray.size();i++) {
			System.out.println("第"+(i+1)+"个 个性化菜单button："+jsonArray.get(i).getAsJsonObject().get("button"));
			System.out.println("第"+(i+1)+"个 个性化菜单matchrule："+jsonArray.get(i).getAsJsonObject().get("matchrule"));
			System.out.println("第"+(i+1)+"个 个性化菜单menuid:"+jsonArray.get(i).getAsJsonObject().get("menuid"));
			System.out.println();
		}*/
    }

    /*
     * 获取自定义菜单的详细信息并单独输出
     */
    @Test
    public void detailGereralMenu() {
		/*String result = new QueryMenu().queryMenu();
		Gson gson = new Gson();
		JsonObject jsonObject = gson.fromJson(result, JsonObject.class);
		JsonArray jsonArray = jsonObject.get("menu").getAsJsonArray();
		for (int i=0;i<jsonArray.size();i++) {
			//TODO
		}	*/
    }

}
